/**
 * 格式化日期
 * @param {String|Date} date 日期字符串或日期对象
 * @param {String} format 格式化模板，默认 'YYYY-MM-DD HH:mm:ss'
 * @returns {String} 格式化后的日期字符串
 */
export function formatDate(date, format = 'YYYY-MM-DD HH:mm:ss') {
  if (!date) return '';

  let dt = null;

  if (typeof date === 'string') {
    // 处理字符串，尝试使用YYYY-MM-DDTHH:mm:ss.000Z格式
    dt = new Date(date);
  } else if (date instanceof Date) {
    dt = date;
  } else {
    return '';
  }

  if (isNaN(dt.getTime())) {
    return '';
  }

  const options = {
    'YYYY': dt.getFullYear(),
    'MM': (dt.getMonth() + 1).toString().padStart(2, '0'),
    'DD': dt.getDate().toString().padStart(2, '0'),
    'HH': dt.getHours().toString().padStart(2, '0'),
    'mm': dt.getMinutes().toString().padStart(2, '0'),
    'ss': dt.getSeconds().toString().padStart(2, '0'),
  };

  return format.replace(/YYYY|MM|DD|HH|mm|ss/g, match => options[match]);
}

/**
 * 格式化文件大小
 * @param {Number} size 文件大小（字节）
 * @returns {String} 格式化后的文件大小
 */
export function formatFileSize(size) {
  if (size < 1024) {
    return size + ' B';
  } else if (size < 1024 * 1024) {
    return (size / 1024).toFixed(2) + ' KB';
  } else if (size < 1024 * 1024 * 1024) {
    return (size / (1024 * 1024)).toFixed(2) + ' MB';
  } else {
    return (size / (1024 * 1024 * 1024)).toFixed(2) + ' GB';
  }
} 